技術問答
技術文章
iT 徵才
聊天室
2025 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2021 iThome 鐵人賽
DAY
8
0
AI & Data
Deep Learning 從零開始到放棄的 30 天 PyTorch 數字辨識模型
系列 第
8
篇
Day-07 Logistic Regression 介紹
13th鐵人賽
CrazyFire
2021-09-22 10:09:55
3652 瀏覽
分享至
在前面兩天我們已經說完基礎的 Regression 跟 Classification 了,為什麼在這裡還要提到一個什麼 Logistic Regression?
Logistic Regression(羅吉斯回歸,這中文實在是太神奇了,我們後面都將用英文稱呼),是一個大家在學習機器學習的路途上,一定會接觸到的,理由是什麼?就筆者自己認為,他是一個披著 Regression 外皮的 Classification ,因為等等就會發現他的公式竟然長得跟 Linear Regression 一模一樣,因此 Logistic Regression 確實有我們必須額外了解的原因,我們等等看下去就知道了
什麼是 Logistic Regression?
Logistic Regression 是一種分類模型,利用現有的資料點,盡可能的找出能將所有資料點分離的那條線
我們來看看一張圖,
from:
Tommy Huang
原本 Regression 是用來預測一個連續的數值,但是在這邊,我們利用 Logistic Regression 來分類資料,且我們從上圖可以發現 Linear Regrssion 跟 Logistic Regression 的公式都是一樣的
那我們回顧 Classification 那邊如何判斷資料的二分類?就是找一個機率
有沒有大於 50% 來做個分辨,只要他對於判斷區塊有超過 50% 的機率,那我們就說我們可以判定他屬於第一類或是其他類
那 Logistic Regression 也是一樣的概念,只是我們就直接帶入數值之後,他是大於零還是小於零
from:
Tommy Huang
等於我們就是利用一個 unit-step function 去直接做判斷
那這邊我們的
的判斷有點太過絕對生硬,也就是他並沒有考慮到資料判斷上會遇到的問題,什麼意思
我們繪製看看一下如果
的話,他的判斷曲線會長怎樣
這個判斷曲線的意思是什麼,是代表了就算資料是
或是
這種我們自己都知道是介於邊緣的資料,有極高機率誤判,但判斷公式仍然會毫不猶豫的給予分辨,這就代表著我們的判斷太過武斷,且毫無彈性
因此 Logistic Regression 利用對數函數 Sigmoid 來達到更有彈性的輸出,我們來看看圖片
橘色的線線就是利用對數函數來做輸出的,可以發現對於判斷界線還有資料判斷的狀況,更加的平滑,因此判斷會更加彈性,例如
而 Sigmoid 的公式是什麼呢?
這邊不多贅述這個對數函數了,有興趣的自己去查都可以看到很清楚的解釋
Logistic Regression V.S. Linear Regression
在最前面我們有提到過,Linear Regression 跟 Logistic Regression 的公式是一樣的,但是判斷卻是不一樣的
我們一樣拉到三步驟去做比較
Model
Linear Regression 的公式很簡單,就是
但是 Logistic Regression 前面有提到,是要分類的,因此公式上多了一個部分,就是
,
,那個 Output 會是 0 or 1
所以這邊可以發現公式真的一模一樣,唯一差異就是 Logistic Regression 多了一個 Sigmoid,去幫忙分類 0,1
Goodness of function
Linear Regression 就是一個很簡單的 Loss function,就是 Mean Square Error,
也就是去看答案的差異
那 Logistic Regression 呢?是不是也就直接用 Mean Square Error 呢?
其實不能,至於原因我強烈推薦去聽
李弘毅老師
的開放式課程,那邊有詳細的解釋
那這邊要怎麼辦呢?
我們回到 Classification 那邊機率的想法,假設我們去計算
被分類成
機率是
那我們 w, b 這個參數好不好就是我們前面提過的
那我們假設最好的
這個參數是
,那最佳的那個機率也會是
,也就是最大的
那最佳的
其實等同於
,然後每一項
可以寫成
,這行式子就是 Cross-entropy loss function
所以到這裡,我們也有 Logistic Regression 的 Loss Function 了,在機器學習三步驟我們只差了一步了,就是 Best Function 了
Find the best function
我們開始微分我們的 cross-entropy loss function,詳細的數學運算我們一樣跳過,結論就是我們一樣用 Gradient Descent 得到了
這邊我們趕緊來看當初 Linear Regression 的 Gradient Descent
竟然長的一毛毛一樣樣,唯一的差別就是 Linear Regression 的
跟
是任意實數,而 Logistic Regression 則是介於 0~1 之間的數值
所以到這裡我們就可以發現 Logistic Regression 真的就是基於 Linear Regression 的概念,成功達到 Classification 的方法
每日小結
Logistic Regression 真的就是披著 Regression 外皮的分類間諜 XDD,他披著預測知名行分類之實
Logistic Regression 和 Linear Regression 最大的差異在於多了一個 Sigmoid Function 去做資料的分類,而選擇 Sigmoid Function 的原因是因為希望資料的判定能夠更有彈性,信心更足
那既然我們發現我們也可以用類 Regression 的概念達到 Classification,那我們明天就來實作 Logistic Regression 試試看...嗎?先賣個關子,明天我們要先處裡一個我們提過的機器學習大前題
留言
追蹤
檢舉
上一篇
Day-06 Classification
下一篇
Day-08 比訓練更重要的事情,Dataset
系列文
Deep Learning 從零開始到放棄的 30 天 PyTorch 數字辨識模型
共
31
篇
目錄
RSS系列文
訂閱系列文
27
人訂閱
27
Day-26 手把手的手寫辨識模型 0x1:資料集整理
28
Day-27 手把手的手寫面是模型 0x2:資料訓練和結果輸出
29
Day-28 手把手的手寫辨識模型 0x3:CNN is the end?模型大哉問
30
Day-29 Pytorch 還可以更輕鬆更簡單!Pytorch Lightning
31
Day-30 不完美收工
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
19859
篇
完賽人數
528
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
我在做 packet tracer 的題目,想請問一下該怎麼做
dhcp 在client 端機碼設定的問題
照片破圖或是有損壞,如何修復?
Windows DHCP Server IP保留問題
新電腦安裝鼎新 Workflow ERP iGP的 Access violation
.net6 的mvc架構 如何連 report server
急! 筆電上的chrome書籤,覆蓋掉了原本桌電上的chrome書籤 (解決有獎)
Client-Server 轉 Java Web 問題請益
熱門回答
我在做 packet tracer 的題目,想請問一下該怎麼做
Windows DHCP Server IP保留問題
dhcp 在client 端機碼設定的問題
照片破圖或是有損壞,如何修復?
.net6 的mvc架構 如何連 report server
熱門文章
【C++學習筆記】01《從零學習C++,跟世界打招呼吧!》
數位轉型是什麼?從定義、三階段到成功案例一次看懂
Angular 後台系統 i18n 套件比較:Angular 內建 i18n vs ngx-translate vs ngx-atomic-i18n
在陸版手機裡使用注音輸入
【解題紀錄】數字翻轉 Flip Number
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}